package com.chen.qmzy.entity;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import lombok.Data;

/**
 * 返回的结果类
 * code:返回码
 * msg：返回的提示消息
 * data：返回的数据
 */
@Data
public class ResultEntity {
    private Object code; //返回码
    private Object msg; //返回的信息
    private Object data; //返回的数据
    public ResultEntity(Object code, Object msg, Object data){ //构造方法
        this.data=data;
        this.msg=msg;
        this.code=code;
    }

    /**
     *
     *  Object 转Json
     * @param object 传入的objec
     * @return json
     */
    public static String toJson(Object object){
        Gson gson=null;//新建Gson对象
        GsonBuilder gsonBuilder=new GsonBuilder(); //新建Gson容易对象
        gsonBuilder.setPrettyPrinting();
        gson=gsonBuilder.create();//创建容器
        return gson.toJson(object);//调用方法返回json
    }

    /**
     * 对数据库的操作(增删改)的返回，根据影响的行数返回不同的结果
     * @param res 影响的行数
     * @return string Json类型
     */
    public static String success(int res){
        if(res>=1){
            return toJson(new ResultEntity(200,"操作成功",null));
        }else {
            return toJson(new ResultEntity(1,"操作失败",null));
        }
    }
    /**
     * 通用型返回结果 True 返回操作成功 False 返回操作失败
     * @param res boolean类型
     * @return string Json类型
     */
    public static String success(boolean res){
        if(res){
            return toJson(new ResultEntity(200,"操作成功",null));
        }else {
            return toJson(new ResultEntity(1,"操作失败",null));
        }
    }
    /**
     * 对数据库的操作(查询)的返回
     * @return data 数据
     * @return string Json类型
     */
    public static String success(Object data){
        return toJson(new ResultEntity(200,"查询成功",data));
    }

    /**
     * 执行错误返回
     * @param code 错误代码
     * @return string Json类型
     */
    public static String fail(int code){
        return toJson(new ResultEntity(code,"内部错误！请将错误代码发给管理员",null));
    }
}
